package design.graduation.novelsystem.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import design.graduation.novelsystem.mapper.AdminLoginLogMapper;
import design.graduation.novelsystem.model.domian.AdminLoginLog;
import design.graduation.novelsystem.model.dto.DataGridView;
import design.graduation.novelsystem.model.vo.AdminLoginLogVo;
import design.graduation.novelsystem.service.AdminLoginLogService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
/**
 * @author: 洪少尉
 * @Date: 2020/4/14 01:11
 * @Description: 
 */
@Service
public class AdminLoginLogServiceImpl extends ServiceImpl<AdminLoginLogMapper, AdminLoginLog> implements AdminLoginLogService{

	/**
	 * 查询所有登录日志
	 *
	 * @param adminLoginLogVo 查询条件
	 * @return 登录日志数据
	 */
	@Override
	public DataGridView queryAllAdminLoginLog(AdminLoginLogVo adminLoginLogVo) {
		IPage<AdminLoginLog> page = new Page<>(adminLoginLogVo.getPage(),adminLoginLogVo.getLimit());
		QueryWrapper<AdminLoginLog>queryWrapper = new QueryWrapper<>();
		//登录名
		queryWrapper.like(StringUtils.isNotBlank(adminLoginLogVo.getLoginName()),AdminLoginLog.COL_LOGIN_NAME,adminLoginLogVo.getLoginName())
				//登录ip
				.like(StringUtils.isNotBlank(adminLoginLogVo.getLoginIp()),AdminLoginLog.COL_LOGIN_IP,adminLoginLogVo.getLoginIp())
				//登陆时间范围
				.ge(adminLoginLogVo.getStartTime()!=null,AdminLoginLog.COL_LOGIN_TIME,adminLoginLogVo.getStartTime())
				.le(adminLoginLogVo.getEndTime()!=null,AdminLoginLog.COL_LOGIN_TIME,adminLoginLogVo.getEndTime())
				.orderByDesc(AdminLoginLog.COL_LOGIN_TIME);
		this.baseMapper.selectPage(page,queryWrapper);
		return new DataGridView(page.getTotal(),page.getRecords());
	}
}
